/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.date.DateUtil
 *  cn.hutool.core.util.ObjectUtil
 *  com.alibaba.fastjson.JSON
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.beans.value.ChangeListener
 *  javafx.beans.value.ObservableValue
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.ComboBox
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableView
 *  javafx.scene.control.TextField
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.AnchorPane
 *  javafx.stage.Modality
 *  javafx.stage.Stage
 *  javafx.util.Callback
 *  javafx.util.StringConverter
 *  org.springframework.beans.factory.annotation.Autowired
 */
package com.gys.controller.returnDepotSu;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.gys.GysApplication;
import com.gys.common.business.AcceptUtil;
import com.gys.common.business.DepotUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.data.KeyValue;
import com.gys.common.util.CacheUtil;
import com.gys.common.util.CommonUtil;
import com.gys.common.util.SpringUtil;
import com.gys.common.util.ValidationUtil;
import com.gys.controller.BaseController;
import com.gys.controller.clearBox.ClearProductQueryController;
import com.gys.controller.dataManger.ControllerManger;
import com.gys.controller.returnDepotSu.ChooseProductSuController;
import com.gys.controller.returnDepotSu.DepotSuController;
import com.gys.controller.salesReceipts.TipTopController;
import com.gys.data.accept.AcceptInData;
import com.gys.data.accept.GetSupOutData;
import com.gys.data.accept.ProductOutData;
import com.gys.data.example.GetLoginStoreOutData;
import com.gys.data.example.GetUserOutData;
import com.gys.data.returnDepot.GetDepotDetailOutData;
import com.gys.data.returnDepot.GetDepotInData;
import com.gys.data.returnDepot.GetDepotPoDetailOutData;
import com.gys.view.returnDepotSu.AddView;
import com.gys.view.returnDepotSu.ChooseProduct;
import de.felixroske.jfxsupport.FXMLController;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;
import java.util.Timer;
import java.util.TimerTask;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.util.Callback;
import javafx.util.StringConverter;
import org.springframework.beans.factory.annotation.Autowired;

@FXMLController
public class AddDepotSuController
extends BaseController
implements Initializable {
    @FXML
    private TextField orderType;
    @FXML
    private ComboBox<KeyValue> store;
    @FXML
    private TextField date;
    @FXML
    private TextField storeText;
    @FXML
    private TextField storeType;
    @FXML
    private TextField clientName;
    @FXML
    private TextField huowei;
    @FXML
    private TextField headRemark;
    @FXML
    private TableView<GetDepotDetailOutData> tableView;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> gsrddSerial;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> gsrddProId;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> proName;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> proSpecs;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> proFactoryName;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> proPlace;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> gsrddBatch;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> gsrddBatchNo;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> gsrddValidDate;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> gsrddStockQty;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> gsrddRetdepQty;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> poId;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> poLineNo;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> poPrice;
    @FXML
    private TableColumn<GetDepotDetailOutData, String> poRate;
    @FXML
    private AnchorPane anchorPane;
    @Autowired
    private DepotSuController depotController;
    @Autowired
    private ChooseProductSuController chooseProductSuController;
    @Autowired
    private TipTopController tipTopController;
    @Autowired
    private ClearProductQueryController clearProductQueryController;
    private ObservableList<GetDepotDetailOutData> observableTableList = FXCollections.observableArrayList(new ArrayList());
    private ObservableList<KeyValue> storeOptions;
    private List<GetSupOutData> items = new ArrayList<GetSupOutData>();

    public void initialize(URL location, ResourceBundle resources) {
        ControllerManger.controllerMap.put(this.getClass().getSimpleName(), this);
        this.init();
    }

    @Override
    public void init() {
        if (ObjectUtil.isEmpty(this.anchorPane)) {
            return;
        }
        new Timer().schedule(new TimerTask(){

            @Override
            public void run() {
                AddView view = SpringUtil.getBean(AddView.class);
                Stage stage = (Stage)view.getView().getScene().getWindow();
                stage.getScene().setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

                    public void handle(KeyEvent event) {
                        if (event.getCode() == KeyCode.ENTER) {
                            AddDepotSuController.this.sureAction();
                            return;
                        }
                        if (event.getCode() == KeyCode.ESCAPE) {
                            AddDepotSuController.this.cancelAction();
                            return;
                        }
                    }
                });
            }
        }, 1000L);
        AcceptInData inDataStore = new AcceptInData();
        HttpJson httpJsonS = AcceptUtil.getSup(inDataStore);
        if (!httpJsonS.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJsonS.getMsg());
            alert.showAndWait();
            return;
        }
        this.items = JSON.parseArray((String)httpJsonS.getMsg(), GetSupOutData.class);
        ArrayList<KeyValue> storeOptionList = new ArrayList<KeyValue>();
        for (GetSupOutData item : this.items) {
            storeOptionList.add(new KeyValue(item.getSupName(), item.getSupCode()));
        }
        this.storeOptions = FXCollections.observableArrayList(storeOptionList);
        this.store.setItems(this.storeOptions);
        this.comboxInit(this.store);
        this.clientName.setText(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        this.orderType.setText("\u91c7\u8d2d\u8ba2\u5355");
        this.date.setText(DateUtil.format((Date)new Date(), (String)"yyyyMMdd"));
        this.storeText.setText(((GetLoginStoreOutData)CacheUtil.get("store")).getStoName());
        this.storeType.setText("\u95e8\u5e97");
        this.observableTableList.clear();
        this.store.setValue(null);
        this.headRemark.setText("");
        this.huowei.setText("\u5408\u683c");
    }

    public void comboxInit(ComboBox box) {
        box.converterProperty().set(new StringConverter<KeyValue>(){

            public String toString(KeyValue object) {
                return object.getName();
            }

            public KeyValue fromString(String string) {
                return null;
            }
        });
    }

    public TableView<GetDepotDetailOutData> initTable() {
        this.bingDetailTableCell();
        this.changeToTextFieldDEdit(this.gsrddRetdepQty);
        this.tableView.setItems(this.observableTableList);
        return this.tableView;
    }

    @FXML
    private void choose() {
        this.chooseProductSuController.init();
        GysApplication.showView(ChooseProduct.class, (Modality)Modality.APPLICATION_MODAL);
    }

    @FXML
    public void addProduct(ProductOutData product) {
        GetDepotDetailOutData data = new GetDepotDetailOutData();
        int index = this.observableTableList.size();
        data.setGsrddSerial(String.valueOf(index + 1));
        data.setGsrddProId(product.getProCode());
        data.setGsrddValidDate(product.getProLife());
        data.setProFactoryName(product.getProFactoryName());
        data.setProForm(product.getProForm());
        data.setProName(product.getGspgProName());
        data.setProPlace(product.getProPlace());
        data.setProRegisterNo(product.getProRegisterNo());
        data.setProSpecs(product.getGspgSpecs());
        data.setProUnit(product.getProUnit());
        data.setProPrice(product.getProPrice());
        data.setGsrddValidDate(product.getValidDate());
        data.setGsrddBatch(product.getBatch());
        data.setGsrddBatchNo(product.getBatchNo());
        data.setGsrddStockQty(product.getStockQty());
        GetDepotInData inData = new GetDepotInData();
        inData.setProId(product.getProCode());
        inData.setBatchNo(product.getBatchNo());
        inData.setBatch(product.getBatch());
        HttpJson httpJsonS = DepotUtil.getPoDetail(inData);
        GetDepotPoDetailOutData outData = new GetDepotPoDetailOutData();
        if (!httpJsonS.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJsonS.getMsg());
            alert.showAndWait();
            return;
        }
        outData = (GetDepotPoDetailOutData)JSON.parseObject((String)httpJsonS.getMsg(), GetDepotPoDetailOutData.class);
        data.setPoId(outData.getPoId());
        data.setPoLineNo(outData.getPoLineNo());
        data.setPoPrice(outData.getPoPrice());
        data.setPoRate(outData.getPoRate());
        this.observableTableList.add(data);
        this.initTable();
    }

    @FXML
    private void sureAction() {
        if (this.observableTableList.size() == 0) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u8bf7\u6dfb\u52a0\u5546\u54c1");
            alert.showAndWait();
            return;
        }
        for (int i = 0; i < this.observableTableList.size(); ++i) {
            if (!ValidationUtil.checkPositiveInteger(((GetDepotDetailOutData)this.observableTableList.get(i)).getGsrddRetdepQty())) continue;
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u672c\u6b21\u9000\u5e93\u6570\u91cf\u586b\u5199\u4e0d\u5408\u6cd5\uff01");
            alert.showAndWait();
            return;
        }
        if (ObjectUtil.isEmpty(((KeyValue)this.store.getValue()).getValue())) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u8bf7\u9009\u62e9\u4f9b\u5e94\u5546\uff01");
            alert.showAndWait();
            return;
        }
        GetDepotInData inData = new GetDepotInData();
        inData.setGsrdhType("2");
        inData.setStoreCode(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        inData.setGsrdhFrom(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        inData.setGsrdhTo(((KeyValue)this.store.getValue()).getValue());
        inData.setGsrdhRemaks(this.headRemark.getText());
        inData.setDepotDetailInDataList((List<GetDepotDetailOutData>)this.observableTableList);
        HttpJson httpJson = DepotUtil.insert(inData);
        if (httpJson.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u4fdd\u5b58\u6210\u529f");
            alert.showAndWait();
            this.cancelAction();
            this.depotController.initTable(0);
        } else {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
            alert.showAndWait();
        }
    }

    private void bingDetailTableCell() {
        this.gsrddSerial.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrddSerial.getId()));
        this.gsrddProId.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrddProId.getId()));
        this.proName.setCellValueFactory((Callback)new PropertyValueFactory(this.proName.getId()));
        this.gsrddBatchNo.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrddBatchNo.getId()));
        this.gsrddBatch.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrddBatch.getId()));
        this.gsrddValidDate.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrddValidDate.getId()));
        this.gsrddStockQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrddStockQty.getId()));
        this.gsrddRetdepQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsrddRetdepQty.getId()));
        this.proFactoryName.setCellValueFactory((Callback)new PropertyValueFactory(this.proFactoryName.getId()));
        this.proPlace.setCellValueFactory((Callback)new PropertyValueFactory(this.proPlace.getId()));
        this.proSpecs.setCellValueFactory((Callback)new PropertyValueFactory(this.proSpecs.getId()));
        this.poId.setCellValueFactory((Callback)new PropertyValueFactory(this.poId.getId()));
        this.poLineNo.setCellValueFactory((Callback)new PropertyValueFactory(this.poLineNo.getId()));
        this.poPrice.setCellValueFactory((Callback)new PropertyValueFactory(this.poPrice.getId()));
        this.poRate.setCellValueFactory((Callback)new PropertyValueFactory(this.poRate.getId()));
    }

    @FXML
    private void cancelAction() {
        this.observableTableList.clear();
        this.anchorPane.getScene().getWindow().hide();
    }

    public void changeToTextFieldDEdit(TableColumn<GetDepotDetailOutData, String> column) {
        column.setCellFactory(tc -> {
            final TextField textField = new TextField();
            textField.setMinHeight(30.0);
            TableCell<GetDepotDetailOutData, String> cell = new TableCell<GetDepotDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        textField.setText(chuzhi);
                        this.setGraphic((Node)textField);
                    }
                }
            };
            textField.textProperty().addListener(new ChangeListener(){
                final TableCell val_cell;
                final TextField val_textField;
                {
                    this.val_cell = cell;
                    this.val_textField = textField;
                }

                public void changed(ObservableValue observable, Object oldValue, Object newValue) {
                    int rank = this.val_cell.getIndex();
                    String cloumName = this.val_cell.getId();
                    String value = this.val_textField.getText();
                    GetDepotDetailOutData outData = (GetDepotDetailOutData)AddDepotSuController.this.observableTableList.get(rank);
                    String methodName = CommonUtil.getSetMethod(cloumName);
                    try {
                        Method method = GetDepotDetailOutData.class.getMethod(methodName, String.class);
                        method.invoke(outData, value);
                    }
                    catch (Exception ex) {
                        throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
                    }
                }
            });
            return cell;
        });
    }

    public TextField getOrderType() {
        return this.orderType;
    }

    public ComboBox<KeyValue> getStore() {
        return this.store;
    }

    public TextField getDate() {
        return this.date;
    }

    public TextField getStoreText() {
        return this.storeText;
    }

    public TextField getStoreType() {
        return this.storeType;
    }

    public TextField getClientName() {
        return this.clientName;
    }

    public TextField getHuowei() {
        return this.huowei;
    }

    public TextField getHeadRemark() {
        return this.headRemark;
    }

    public TableView<GetDepotDetailOutData> getTableView() {
        return this.tableView;
    }

    public TableColumn<GetDepotDetailOutData, String> getGsrddSerial() {
        return this.gsrddSerial;
    }

    public TableColumn<GetDepotDetailOutData, String> getGsrddProId() {
        return this.gsrddProId;
    }

    public TableColumn<GetDepotDetailOutData, String> getProName() {
        return this.proName;
    }

    public TableColumn<GetDepotDetailOutData, String> getProSpecs() {
        return this.proSpecs;
    }

    public TableColumn<GetDepotDetailOutData, String> getProFactoryName() {
        return this.proFactoryName;
    }

    public TableColumn<GetDepotDetailOutData, String> getProPlace() {
        return this.proPlace;
    }

    public TableColumn<GetDepotDetailOutData, String> getGsrddBatch() {
        return this.gsrddBatch;
    }

    public TableColumn<GetDepotDetailOutData, String> getGsrddBatchNo() {
        return this.gsrddBatchNo;
    }

    public TableColumn<GetDepotDetailOutData, String> getGsrddValidDate() {
        return this.gsrddValidDate;
    }

    public TableColumn<GetDepotDetailOutData, String> getGsrddStockQty() {
        return this.gsrddStockQty;
    }

    public TableColumn<GetDepotDetailOutData, String> getGsrddRetdepQty() {
        return this.gsrddRetdepQty;
    }

    public TableColumn<GetDepotDetailOutData, String> getPoId() {
        return this.poId;
    }

    public TableColumn<GetDepotDetailOutData, String> getPoLineNo() {
        return this.poLineNo;
    }

    public TableColumn<GetDepotDetailOutData, String> getPoPrice() {
        return this.poPrice;
    }

    public TableColumn<GetDepotDetailOutData, String> getPoRate() {
        return this.poRate;
    }

    public AnchorPane getAnchorPane() {
        return this.anchorPane;
    }

    public DepotSuController getDepotController() {
        return this.depotController;
    }

    public ChooseProductSuController getChooseProductSuController() {
        return this.chooseProductSuController;
    }

    public TipTopController getTipTopController() {
        return this.tipTopController;
    }

    public ClearProductQueryController getClearProductQueryController() {
        return this.clearProductQueryController;
    }

    public ObservableList<GetDepotDetailOutData> getObservableTableList() {
        return this.observableTableList;
    }

    public ObservableList<KeyValue> getStoreOptions() {
        return this.storeOptions;
    }

    public List<GetSupOutData> getItems() {
        return this.items;
    }

    public void setOrderType(TextField orderType) {
        this.orderType = orderType;
    }

    public void setStore(ComboBox<KeyValue> store) {
        this.store = store;
    }

    public void setDate(TextField date) {
        this.date = date;
    }

    public void setStoreText(TextField storeText) {
        this.storeText = storeText;
    }

    public void setStoreType(TextField storeType) {
        this.storeType = storeType;
    }

    public void setClientName(TextField clientName) {
        this.clientName = clientName;
    }

    public void setHuowei(TextField huowei) {
        this.huowei = huowei;
    }

    public void setHeadRemark(TextField headRemark) {
        this.headRemark = headRemark;
    }

    public void setTableView(TableView<GetDepotDetailOutData> tableView) {
        this.tableView = tableView;
    }

    public void setGsrddSerial(TableColumn<GetDepotDetailOutData, String> gsrddSerial) {
        this.gsrddSerial = gsrddSerial;
    }

    public void setGsrddProId(TableColumn<GetDepotDetailOutData, String> gsrddProId) {
        this.gsrddProId = gsrddProId;
    }

    public void setProName(TableColumn<GetDepotDetailOutData, String> proName) {
        this.proName = proName;
    }

    public void setProSpecs(TableColumn<GetDepotDetailOutData, String> proSpecs) {
        this.proSpecs = proSpecs;
    }

    public void setProFactoryName(TableColumn<GetDepotDetailOutData, String> proFactoryName) {
        this.proFactoryName = proFactoryName;
    }

    public void setProPlace(TableColumn<GetDepotDetailOutData, String> proPlace) {
        this.proPlace = proPlace;
    }

    public void setGsrddBatch(TableColumn<GetDepotDetailOutData, String> gsrddBatch) {
        this.gsrddBatch = gsrddBatch;
    }

    public void setGsrddBatchNo(TableColumn<GetDepotDetailOutData, String> gsrddBatchNo) {
        this.gsrddBatchNo = gsrddBatchNo;
    }

    public void setGsrddValidDate(TableColumn<GetDepotDetailOutData, String> gsrddValidDate) {
        this.gsrddValidDate = gsrddValidDate;
    }

    public void setGsrddStockQty(TableColumn<GetDepotDetailOutData, String> gsrddStockQty) {
        this.gsrddStockQty = gsrddStockQty;
    }

    public void setGsrddRetdepQty(TableColumn<GetDepotDetailOutData, String> gsrddRetdepQty) {
        this.gsrddRetdepQty = gsrddRetdepQty;
    }

    public void setPoId(TableColumn<GetDepotDetailOutData, String> poId) {
        this.poId = poId;
    }

    public void setPoLineNo(TableColumn<GetDepotDetailOutData, String> poLineNo) {
        this.poLineNo = poLineNo;
    }

    public void setPoPrice(TableColumn<GetDepotDetailOutData, String> poPrice) {
        this.poPrice = poPrice;
    }

    public void setPoRate(TableColumn<GetDepotDetailOutData, String> poRate) {
        this.poRate = poRate;
    }

    public void setAnchorPane(AnchorPane anchorPane) {
        this.anchorPane = anchorPane;
    }

    public void setDepotController(DepotSuController depotController) {
        this.depotController = depotController;
    }

    public void setChooseProductSuController(ChooseProductSuController chooseProductSuController) {
        this.chooseProductSuController = chooseProductSuController;
    }

    public void setTipTopController(TipTopController tipTopController) {
        this.tipTopController = tipTopController;
    }

    public void setClearProductQueryController(ClearProductQueryController clearProductQueryController) {
        this.clearProductQueryController = clearProductQueryController;
    }

    public void setObservableTableList(ObservableList<GetDepotDetailOutData> observableTableList) {
        this.observableTableList = observableTableList;
    }

    public void setStoreOptions(ObservableList<KeyValue> storeOptions) {
        this.storeOptions = storeOptions;
    }

    public void setItems(List<GetSupOutData> items) {
        this.items = items;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof AddDepotSuController)) {
            return false;
        }
        AddDepotSuController other = (AddDepotSuController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        TextField this$orderType = this.getOrderType();
        TextField other$orderType = other.getOrderType();
        if (this$orderType == null ? other$orderType != null : !this$orderType.equals(other$orderType)) {
            return false;
        }
        ComboBox<KeyValue> this$store = this.getStore();
        ComboBox<KeyValue> other$store = other.getStore();
        if (this$store == null ? other$store != null : !this$store.equals(other$store)) {
            return false;
        }
        TextField this$date = this.getDate();
        TextField other$date = other.getDate();
        if (this$date == null ? other$date != null : !this$date.equals(other$date)) {
            return false;
        }
        TextField this$storeText = this.getStoreText();
        TextField other$storeText = other.getStoreText();
        if (this$storeText == null ? other$storeText != null : !this$storeText.equals(other$storeText)) {
            return false;
        }
        TextField this$storeType = this.getStoreType();
        TextField other$storeType = other.getStoreType();
        if (this$storeType == null ? other$storeType != null : !this$storeType.equals(other$storeType)) {
            return false;
        }
        TextField this$clientName = this.getClientName();
        TextField other$clientName = other.getClientName();
        if (this$clientName == null ? other$clientName != null : !this$clientName.equals(other$clientName)) {
            return false;
        }
        TextField this$huowei = this.getHuowei();
        TextField other$huowei = other.getHuowei();
        if (this$huowei == null ? other$huowei != null : !this$huowei.equals(other$huowei)) {
            return false;
        }
        TextField this$headRemark = this.getHeadRemark();
        TextField other$headRemark = other.getHeadRemark();
        if (this$headRemark == null ? other$headRemark != null : !this$headRemark.equals(other$headRemark)) {
            return false;
        }
        TableView<GetDepotDetailOutData> this$tableView = this.getTableView();
        TableView<GetDepotDetailOutData> other$tableView = other.getTableView();
        if (this$tableView == null ? other$tableView != null : !this$tableView.equals(other$tableView)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$gsrddSerial = this.getGsrddSerial();
        TableColumn<GetDepotDetailOutData, String> other$gsrddSerial = other.getGsrddSerial();
        if (this$gsrddSerial == null ? other$gsrddSerial != null : !this$gsrddSerial.equals(other$gsrddSerial)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$gsrddProId = this.getGsrddProId();
        TableColumn<GetDepotDetailOutData, String> other$gsrddProId = other.getGsrddProId();
        if (this$gsrddProId == null ? other$gsrddProId != null : !this$gsrddProId.equals(other$gsrddProId)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$proName = this.getProName();
        TableColumn<GetDepotDetailOutData, String> other$proName = other.getProName();
        if (this$proName == null ? other$proName != null : !this$proName.equals(other$proName)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$proSpecs = this.getProSpecs();
        TableColumn<GetDepotDetailOutData, String> other$proSpecs = other.getProSpecs();
        if (this$proSpecs == null ? other$proSpecs != null : !this$proSpecs.equals(other$proSpecs)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$proFactoryName = this.getProFactoryName();
        TableColumn<GetDepotDetailOutData, String> other$proFactoryName = other.getProFactoryName();
        if (this$proFactoryName == null ? other$proFactoryName != null : !this$proFactoryName.equals(other$proFactoryName)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$proPlace = this.getProPlace();
        TableColumn<GetDepotDetailOutData, String> other$proPlace = other.getProPlace();
        if (this$proPlace == null ? other$proPlace != null : !this$proPlace.equals(other$proPlace)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$gsrddBatch = this.getGsrddBatch();
        TableColumn<GetDepotDetailOutData, String> other$gsrddBatch = other.getGsrddBatch();
        if (this$gsrddBatch == null ? other$gsrddBatch != null : !this$gsrddBatch.equals(other$gsrddBatch)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$gsrddBatchNo = this.getGsrddBatchNo();
        TableColumn<GetDepotDetailOutData, String> other$gsrddBatchNo = other.getGsrddBatchNo();
        if (this$gsrddBatchNo == null ? other$gsrddBatchNo != null : !this$gsrddBatchNo.equals(other$gsrddBatchNo)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$gsrddValidDate = this.getGsrddValidDate();
        TableColumn<GetDepotDetailOutData, String> other$gsrddValidDate = other.getGsrddValidDate();
        if (this$gsrddValidDate == null ? other$gsrddValidDate != null : !this$gsrddValidDate.equals(other$gsrddValidDate)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$gsrddStockQty = this.getGsrddStockQty();
        TableColumn<GetDepotDetailOutData, String> other$gsrddStockQty = other.getGsrddStockQty();
        if (this$gsrddStockQty == null ? other$gsrddStockQty != null : !this$gsrddStockQty.equals(other$gsrddStockQty)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$gsrddRetdepQty = this.getGsrddRetdepQty();
        TableColumn<GetDepotDetailOutData, String> other$gsrddRetdepQty = other.getGsrddRetdepQty();
        if (this$gsrddRetdepQty == null ? other$gsrddRetdepQty != null : !this$gsrddRetdepQty.equals(other$gsrddRetdepQty)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$poId = this.getPoId();
        TableColumn<GetDepotDetailOutData, String> other$poId = other.getPoId();
        if (this$poId == null ? other$poId != null : !this$poId.equals(other$poId)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$poLineNo = this.getPoLineNo();
        TableColumn<GetDepotDetailOutData, String> other$poLineNo = other.getPoLineNo();
        if (this$poLineNo == null ? other$poLineNo != null : !this$poLineNo.equals(other$poLineNo)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$poPrice = this.getPoPrice();
        TableColumn<GetDepotDetailOutData, String> other$poPrice = other.getPoPrice();
        if (this$poPrice == null ? other$poPrice != null : !this$poPrice.equals(other$poPrice)) {
            return false;
        }
        TableColumn<GetDepotDetailOutData, String> this$poRate = this.getPoRate();
        TableColumn<GetDepotDetailOutData, String> other$poRate = other.getPoRate();
        if (this$poRate == null ? other$poRate != null : !this$poRate.equals(other$poRate)) {
            return false;
        }
        AnchorPane this$anchorPane = this.getAnchorPane();
        AnchorPane other$anchorPane = other.getAnchorPane();
        if (this$anchorPane == null ? other$anchorPane != null : !this$anchorPane.equals(other$anchorPane)) {
            return false;
        }
        DepotSuController this$depotController = this.getDepotController();
        DepotSuController other$depotController = other.getDepotController();
        if (this$depotController == null ? other$depotController != null : !(this$depotController).equals(other$depotController)) {
            return false;
        }
        ChooseProductSuController this$chooseProductSuController = this.getChooseProductSuController();
        ChooseProductSuController other$chooseProductSuController = other.getChooseProductSuController();
        if (this$chooseProductSuController == null ? other$chooseProductSuController != null : !(this$chooseProductSuController).equals(other$chooseProductSuController)) {
            return false;
        }
        TipTopController this$tipTopController = this.getTipTopController();
        TipTopController other$tipTopController = other.getTipTopController();
        if (this$tipTopController == null ? other$tipTopController != null : !(this$tipTopController).equals(other$tipTopController)) {
            return false;
        }
        ClearProductQueryController this$clearProductQueryController = this.getClearProductQueryController();
        ClearProductQueryController other$clearProductQueryController = other.getClearProductQueryController();
        if (this$clearProductQueryController == null ? other$clearProductQueryController != null : !(this$clearProductQueryController).equals(other$clearProductQueryController)) {
            return false;
        }
        ObservableList<GetDepotDetailOutData> this$observableTableList = this.getObservableTableList();
        ObservableList<GetDepotDetailOutData> other$observableTableList = other.getObservableTableList();
        if (this$observableTableList == null ? other$observableTableList != null : !this$observableTableList.equals(other$observableTableList)) {
            return false;
        }
        ObservableList<KeyValue> this$storeOptions = this.getStoreOptions();
        ObservableList<KeyValue> other$storeOptions = other.getStoreOptions();
        if (this$storeOptions == null ? other$storeOptions != null : !this$storeOptions.equals(other$storeOptions)) {
            return false;
        }
        List<GetSupOutData> this$items = this.getItems();
        List<GetSupOutData> other$items = other.getItems();
        return !(this$items == null ? other$items != null : !(this$items).equals(other$items));
    }

    protected boolean canEqual(Object other) {
        return other instanceof AddDepotSuController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        TextField $orderType = this.getOrderType();
        result = result * 59 + ($orderType == null ? 43 : $orderType.hashCode());
        ComboBox<KeyValue> $store = this.getStore();
        result = result * 59 + ($store == null ? 43 : $store.hashCode());
        TextField $date = this.getDate();
        result = result * 59 + ($date == null ? 43 : $date.hashCode());
        TextField $storeText = this.getStoreText();
        result = result * 59 + ($storeText == null ? 43 : $storeText.hashCode());
        TextField $storeType = this.getStoreType();
        result = result * 59 + ($storeType == null ? 43 : $storeType.hashCode());
        TextField $clientName = this.getClientName();
        result = result * 59 + ($clientName == null ? 43 : $clientName.hashCode());
        TextField $huowei = this.getHuowei();
        result = result * 59 + ($huowei == null ? 43 : $huowei.hashCode());
        TextField $headRemark = this.getHeadRemark();
        result = result * 59 + ($headRemark == null ? 43 : $headRemark.hashCode());
        TableView<GetDepotDetailOutData> $tableView = this.getTableView();
        result = result * 59 + ($tableView == null ? 43 : $tableView.hashCode());
        TableColumn<GetDepotDetailOutData, String> $gsrddSerial = this.getGsrddSerial();
        result = result * 59 + ($gsrddSerial == null ? 43 : $gsrddSerial.hashCode());
        TableColumn<GetDepotDetailOutData, String> $gsrddProId = this.getGsrddProId();
        result = result * 59 + ($gsrddProId == null ? 43 : $gsrddProId.hashCode());
        TableColumn<GetDepotDetailOutData, String> $proName = this.getProName();
        result = result * 59 + ($proName == null ? 43 : $proName.hashCode());
        TableColumn<GetDepotDetailOutData, String> $proSpecs = this.getProSpecs();
        result = result * 59 + ($proSpecs == null ? 43 : $proSpecs.hashCode());
        TableColumn<GetDepotDetailOutData, String> $proFactoryName = this.getProFactoryName();
        result = result * 59 + ($proFactoryName == null ? 43 : $proFactoryName.hashCode());
        TableColumn<GetDepotDetailOutData, String> $proPlace = this.getProPlace();
        result = result * 59 + ($proPlace == null ? 43 : $proPlace.hashCode());
        TableColumn<GetDepotDetailOutData, String> $gsrddBatch = this.getGsrddBatch();
        result = result * 59 + ($gsrddBatch == null ? 43 : $gsrddBatch.hashCode());
        TableColumn<GetDepotDetailOutData, String> $gsrddBatchNo = this.getGsrddBatchNo();
        result = result * 59 + ($gsrddBatchNo == null ? 43 : $gsrddBatchNo.hashCode());
        TableColumn<GetDepotDetailOutData, String> $gsrddValidDate = this.getGsrddValidDate();
        result = result * 59 + ($gsrddValidDate == null ? 43 : $gsrddValidDate.hashCode());
        TableColumn<GetDepotDetailOutData, String> $gsrddStockQty = this.getGsrddStockQty();
        result = result * 59 + ($gsrddStockQty == null ? 43 : $gsrddStockQty.hashCode());
        TableColumn<GetDepotDetailOutData, String> $gsrddRetdepQty = this.getGsrddRetdepQty();
        result = result * 59 + ($gsrddRetdepQty == null ? 43 : $gsrddRetdepQty.hashCode());
        TableColumn<GetDepotDetailOutData, String> $poId = this.getPoId();
        result = result * 59 + ($poId == null ? 43 : $poId.hashCode());
        TableColumn<GetDepotDetailOutData, String> $poLineNo = this.getPoLineNo();
        result = result * 59 + ($poLineNo == null ? 43 : $poLineNo.hashCode());
        TableColumn<GetDepotDetailOutData, String> $poPrice = this.getPoPrice();
        result = result * 59 + ($poPrice == null ? 43 : $poPrice.hashCode());
        TableColumn<GetDepotDetailOutData, String> $poRate = this.getPoRate();
        result = result * 59 + ($poRate == null ? 43 : $poRate.hashCode());
        AnchorPane $anchorPane = this.getAnchorPane();
        result = result * 59 + ($anchorPane == null ? 43 : $anchorPane.hashCode());
        DepotSuController $depotController = this.getDepotController();
        result = result * 59 + ($depotController == null ? 43 : ($depotController).hashCode());
        ChooseProductSuController $chooseProductSuController = this.getChooseProductSuController();
        result = result * 59 + ($chooseProductSuController == null ? 43 : ($chooseProductSuController).hashCode());
        TipTopController $tipTopController = this.getTipTopController();
        result = result * 59 + ($tipTopController == null ? 43 : ($tipTopController).hashCode());
        ClearProductQueryController $clearProductQueryController = this.getClearProductQueryController();
        result = result * 59 + ($clearProductQueryController == null ? 43 : ($clearProductQueryController).hashCode());
        ObservableList<GetDepotDetailOutData> $observableTableList = this.getObservableTableList();
        result = result * 59 + ($observableTableList == null ? 43 : $observableTableList.hashCode());
        ObservableList<KeyValue> $storeOptions = this.getStoreOptions();
        result = result * 59 + ($storeOptions == null ? 43 : $storeOptions.hashCode());
        List<GetSupOutData> $items = this.getItems();
        result = result * 59 + ($items == null ? 43 : ($items).hashCode());
        return result;
    }

    public String toString() {
        return "AddDepotSuController(orderType=" + this.getOrderType() + ", store=" + this.getStore() + ", date=" + this.getDate() + ", storeText=" + this.getStoreText() + ", storeType=" + this.getStoreType() + ", clientName=" + this.getClientName() + ", huowei=" + this.getHuowei() + ", headRemark=" + this.getHeadRemark() + ", tableView=" + this.getTableView() + ", gsrddSerial=" + this.getGsrddSerial() + ", gsrddProId=" + this.getGsrddProId() + ", proName=" + this.getProName() + ", proSpecs=" + this.getProSpecs() + ", proFactoryName=" + this.getProFactoryName() + ", proPlace=" + this.getProPlace() + ", gsrddBatch=" + this.getGsrddBatch() + ", gsrddBatchNo=" + this.getGsrddBatchNo() + ", gsrddValidDate=" + this.getGsrddValidDate() + ", gsrddStockQty=" + this.getGsrddStockQty() + ", gsrddRetdepQty=" + this.getGsrddRetdepQty() + ", poId=" + this.getPoId() + ", poLineNo=" + this.getPoLineNo() + ", poPrice=" + this.getPoPrice() + ", poRate=" + this.getPoRate() + ", anchorPane=" + this.getAnchorPane() + ", depotController=" + this.getDepotController() + ", chooseProductSuController=" + this.getChooseProductSuController() + ", tipTopController=" + this.getTipTopController() + ", clearProductQueryController=" + this.getClearProductQueryController() + ", observableTableList=" + this.getObservableTableList() + ", storeOptions=" + this.getStoreOptions() + ", items=" + this.getItems() + ")";
    }
}

